#include <iostream>
#include <cstdio>
using namespace std;

typedef struct
{
	int x,y;
}queue_type;
int ex,ey,sx,sy,n,m,t,w,t1,t2,t3,t4,tcase;
queue_type queue[500];
int zan[4][2]={1,0,0,1,-1,0,0,-1};
int can[15][15];
char map[15][15];

int bfs(int x,int y);


int main()
{
	scanf("%d",&tcase);
	getchar();
	bool neng,nengl;
	char ans[15];
	int many;
	while(tcase--){
		for(int i=0;i<10;i++)
			scanf("%s",map[i]);
		many=0;
		neng=false;
		while(!neng){
			int i;
			neng=true;
			for(i=0;i<=25&&neng;i++){
				nengl=true;
				for(int j=0;j<10&&nengl;j++){
					for(int k=0;k<10&&nengl;k++){
						if(map[j][k]==i+65)
							if(bfs(j,k))
								neng=nengl=false;
							else
								nengl=false;
					}
					
				}
			}
			if(!neng)
				ans[++many]=i-1;
		}
		for(int i=0;i<10&&neng;i++)
			for(int j=0;j<10&&neng;j++)
				if(map[i][j]!='.'&&map[i][j]!='#')
					neng=false;
		if(!neng)
			printf("My God!\n");
		else{
			for(int i=1;i<=many;i++){
				printf("%c",ans[i]+65);
				printf("\n");
			}
		}
	}
	return 0;
} 


int bfs(int x,int y)
{
	memset(can,0,sizeof(can));
	bool neng;
	t=w=1;
	queue[t].x=x;
	queue[t].y=y;
	can[x][y]=1;
	neng=true;
	while(t<=w&&neng){
		t1=queue[t].x;
		t2=queue[t].y;
		for(int i=0;i<4;i++){
			t3=t1+zan[i][0];
			t4=t2+zan[i][1];
			if(t3<10&&t3>=0&&t4<10&&t4>=0&&!can[t3][t4]&&(map[t3][t4]=='.'||map[t3][t4]==map[x][y])){
				can[t3][t4]=1;
				queue[++w].x=t3;
				queue[w].y=t4;
				if(map[t3][t4]==map[x][y]){
					map[t3][t4]='.';
					map[x][y]='.';
					neng=false;
					break;
				}
			}
		}
		t++;
	} 
	if(!neng) return 0;
	else return 1;
}
